// VGSDK - Copyright (C) 2012, Alexandre Di Pino.
// Distributed under the terms of the GNU Library General Public License (LGPL)
// as published by the Free Software Foundation.
// Author Alexandre Di Pino

#include "gle/gle.hpp"
#include <iostream>

namespace gle
{



static std::string glsldictionnaryKeywords[] = 
{
	"asm attribute bool break bvec2 bvec3 bvec4 cast centroid class const continue default discard do double dvec2 dvec3 dvec"
	"4 else enum extern external false fixed float for fvec2 fvec3 fvec4 goto half highp hvec2 hvec3 hvec4 if in inline inout"
	" input int interface invariant ivec2 ivec3 ivec4 long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4"
	"x2 mat4x3 mat4x4 mediump namespace noinline out output packed precision public return sampler1D sampler1DShadow sampler2"
	"D sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3DRect samplerCube short sizeof static struct switc"
	"h template this true typedef uniform union unsigned using varying vec2 vec3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard do doub"
	"le dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2"
	" hvec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray imag"
	"e1DArrayShadow image1DShadow image2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inli"
	"ne inout input int interface invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler3D isamplerCube ive"
	"c2 ivec3 ivec4 long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace"
	" noinline noperspective out output packed partition precision public return row_major sampler1D sampler1DArray sampler1D"
	"ArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DRect sampler2DRectShadow sampler2DSha"
	"dow sampler3D sampler3DRect samplerBuffer samplerCube samplerCubeShadow short sizeof smooth static struct superp switch "
	"template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage3D uimageBuffer uimageCube uint uniform u"
	"nion unsigned usampler1D usampler1DArray usampler2D usampler2DArray usampler3D usamplerCube using uvec2 uvec3 uvec4 vary"
	"ing vec2 vec3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard do doub"
	"le dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2"
	" hvec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray imag"
	"e1DArrayShadow image1DShadow image2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inli"
	"ne inout input int interface invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DRect isampler3D i"
	"samplerBuffer isamplerCube ivec2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 m"
	"at4x2 mat4x3 mat4x4 mediump namespace noinline noperspective out output packed partition precision public return row_maj"
	"or sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2D"
	"Rect sampler2DRectShadow sampler2DShadow sampler3D sampler3DRect samplerBuffer samplerCube samplerCubeShadow short sizeo"
	"f smooth static struct superp switch template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage3D u"
	"imageBuffer uimageCube uint uniform union unsigned usampler1D usampler1DArray usampler2D usampler2DArray usampler2DRect "
	"usampler3D usamplerBuffer usamplerCube using uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard do doub"
	"le dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2"
	" hvec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray imag"
	"e1DArrayShadow image1DShadow image2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inli"
	"ne inout input int interface invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSAr"
	"ray isampler2DRect isampler3D isamplerBuffer isamplerCube ivec2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 m"
	"at3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace noinline noperspective out output packed partition "
	"precision public return row_major sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray"
	" sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3D"
	"Rect samplerBuffer samplerCube samplerCubeShadow short sizeof smooth static struct superp switch template this true type"
	"def uimage1D uimage1DArray uimage2D uimage2DArray uimage3D uimageBuffer uimageCube uint uniform union unsigned usampler1"
	"D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usa"
	"mplerCube using uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard do doub"
	"le dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2"
	" hvec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray imag"
	"e1DArrayShadow image1DShadow image2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inli"
	"ne inout input int interface invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSAr"
	"ray isampler2DRect isampler3D isamplerBuffer isamplerCube ivec2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 m"
	"at3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace noinline noperspective out output packed partition "
	"precision public return row_major sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray"
	" sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3D"
	"Rect samplerBuffer samplerCube samplerCubeShadow short sizeof smooth static struct superp switch template this true type"
	"def uimage1D uimage1DArray uimage2D uimage2DArray uimage3D uimageBuffer uimageCube uint uniform union unsigned usampler1"
	"D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usa"
	"mplerCube using uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard dmat2 d"
	"mat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else enum"
	" extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2 hvec3 hvec4 if iimage1D iimag"
	"e1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray image1DArrayShadow image1DShadow i"
	"mage2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inline inout input int interface i"
	"nvariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D "
	"isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 m"
	"at3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace noinline noperspective out output packed partition patch precis"
	"ion public return row_major sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArra"
	"y sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3"
	"DRect samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow short sizeof smooth static str"
	"uct subroutine superp switch template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage3D uimageBuf"
	"fer uimageCube uint uniform union unsigned usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2D"
	"MSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray using uvec2 uvec3 uvec4 varying vec2 vec"
	"3 vec4 void volatile while",
	"active asm attribute bool break bvec2 bvec3 bvec4 case cast centroid class common const continue default discard dmat2 d"
	"mat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else enum"
	" extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2 hvec3 hvec4 if iimage1D iimag"
	"e1DArray iimage2D iimage2DArray iimage3D iimageBuffer iimageCube image1D image1DArray image1DArrayShadow image1DShadow i"
	"mage2D image2DArray image2DArrayShadow image2DShadow image3D imageBuffer imageCube in inline inout input int interface i"
	"nvariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D "
	"isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 m"
	"at3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace noinline noperspective out output packed partition patch precis"
	"ion public return row_major sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArra"
	"y sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3"
	"DRect samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow short sizeof smooth static str"
	"uct subroutine superp switch template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage3D uimageBuf"
	"fer uimageCube uint uniform union unsigned usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2D"
	"MSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray using uvec2 uvec3 uvec4 varying vec2 vec"
	"3 vec4 void volatile while",
	"active asm atomic_uint attribute bool break bvec2 bvec3 bvec4 case cast centroid class coherent common const continue de"
	"fault discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 "
	"dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2 hvec3 hv"
	"ec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimag"
	"eCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer"
	" imageCube imageCubeArray in inline inout input int interface invariant isampler1D isampler1DArray isampler2D isampler2D"
	"Array isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3"
	" ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump namespace "
	"noinline noperspective out output packed partition patch precision public readonly resource restrict return row_major sa"
	"mple sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler"
	"2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3DRect samplerBuffer samplerCub"
	"e samplerCubeArray samplerCubeArrayShadow samplerCubeShadow short sizeof smooth static struct subroutine superp switch t"
	"emplate this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D"
	" uimageBuffer uimageCube uimageCubeArray uint uniform union unsigned usampler1D usampler1DArray usampler2D usampler2DArr"
	"ay usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray using uvec2 uv"
	"ec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",
	"active asm atomic_uint attribute bool break buffer bvec2 bvec3 bvec4 case cast centroid class coherent common const cont"
	"inue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double"
	" dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2 h"
	"vec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffe"
	"r iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imag"
	"eBuffer imageCube imageCubeArray in inline inout input int interface invariant isampler1D isampler1DArray isampler2D isa"
	"mpler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec"
	"2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump nam"
	"espace noinline noperspective out output packed partition patch precision public readonly resource restrict return row_m"
	"ajor sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow "
	"sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3DRect samplerBuffer sam"
	"plerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow shared short sizeof smooth static struct subroutine s"
	"uperp switch template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2"
	"DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform union unsigned usampler1D usampler1DArray usampler2D"
	" usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray "
	"using uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",
	"active asm atomic_uint attribute bool break buffer bvec2 bvec3 bvec4 case cast centroid class coherent common const cont"
	"inue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double"
	" dvec2 dvec3 dvec4 else enum extern external false filter fixed flat float for fvec2 fvec3 fvec4 goto half highp hvec2 h"
	"vec3 hvec4 if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffe"
	"r iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imag"
	"eBuffer imageCube imageCubeArray in inline inout input int interface invariant isampler1D isampler1DArray isampler2D isa"
	"mpler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec"
	"2 ivec3 ivec4 layout long lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump nam"
	"espace noinline noperspective out output partition patch precise precision public readonly resource restrict return samp"
	"le sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2D"
	"MS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D sampler3DRect samplerBuffer samplerCube "
	"samplerCubeArray samplerCubeArrayShadow samplerCubeShadow shared short sizeof smooth static struct subroutine superp swi"
	"tch template this true typedef uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uim"
	"age3D uimageBuffer uimageCube uimageCubeArray uint uniform union unsigned usampler1D usampler1DArray usampler2D usampler"
	"2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray using uve"
	"c2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly"
};

static std::string glsldictionnaryVariable[] = 
{
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipPla"
	"ne[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlaneR[gl_MaxTextureCo"
	"ords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColo"
	"r gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_Fro"
	"ntLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_LightModel gl_LightSource[gl_MaxLights] gl_Model"
	"ViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjecti"
	"onMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTr"
	"anspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_M"
	"ultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectP"
	"laneR[gl_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_Point gl_PointCo"
	"ord gl_PointSize gl_Position gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_Proje"
	"ctionMatrixTranspose gl_SecondaryColor gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextu"
	"reCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureM"
	"atrixTranspose[gl_MaxTextureCoords] gl_Vertex",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_LightModel gl_LightSource[gl_M"
	"axLights] gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl"
	"_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelView"
	"ProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_M"
	"ultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ[gl_MaxTexture"
	"Coords] gl_ObjectPlaneR[gl_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] g"
	"l_Point gl_PointCoord gl_PointSize gl_Position gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverse"
	"Transpose gl_ProjectionMatrixTranspose gl_SecondaryColor gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_Texture"
	"Matrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureC"
	"oords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex gl_VertexID",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_LightModel gl_Li"
	"ghtSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatr"
	"ixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspos"
	"e gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_Multi"
	"TexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ"
	"[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTe"
	"xtureCoords] gl_Point gl_PointCoord gl_PointSize gl_Position gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_Projectio"
	"nMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SecondaryColor gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUni"
	"ts] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInverseTranspose["
	"gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex gl_VertexID",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_in[] gl_InstanceID gl_Layer gl"
	"_LightModel gl_LightSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose"
	" gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatr"
	"ixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiT"
	"exCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScal"
	"e gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_Obje"
	"ctPlaneT[gl_MaxTextureCoords] gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_Project"
	"ionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SecondaryColor "
	"gl_TexCoord[3] gl_TexCoord[4] gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords]"
	" gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureMatrixTran"
	"spose[gl_MaxTextureCoords] gl_Vertex gl_VertexID",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_in[] gl_InstanceID gl_Layer gl"
	"_LightModel gl_LightSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose"
	" gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatr"
	"ixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiT"
	"exCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScal"
	"e gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_Obje"
	"ctPlaneT[gl_MaxTextureCoords] gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_Project"
	"ionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SecondaryColor "
	"gl_TexCoord[3] gl_TexCoord[4] gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords]"
	" gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureMatrixTran"
	"spose[gl_MaxTextureCoords] gl_Vertex gl_VertexID",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_in[] gl_in[gl_MaxPatchVertices"
	"] gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatri"
	"xInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProject"
	"ionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl"
	"_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoo"
	"rd7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] g"
	"l_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_out[] gl_PatchVerticesIn gl_Point gl_PointCo"
	"ord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_Projectio"
	"nMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask[] gl_SamplePosition gl_SecondaryColor gl_"
	"TessCoord gl_TessLevelInner[2] gl_TessLevelOuter[4] gl_TexCoord[3] gl_TexCoord[4] gl_TexCoord[] gl_TextureEnvColor[gl_Ma"
	"xTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInvers"
	"eTranspose[gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex gl_VertexID",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_in[] gl_in[gl_MaxPatchVertices"
	"] gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatri"
	"xInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProject"
	"ionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl"
	"_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoo"
	"rd7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] g"
	"l_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_out[] gl_PatchVerticesIn gl_Point gl_PointCo"
	"ord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_Projectio"
	"nMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask[] gl_SamplePosition gl_SecondaryColor gl_"
	"TessCoord gl_TessLevelInner[2] gl_TessLevelOuter[4] gl_TexCoord[3] gl_TexCoord[4] gl_TexCoord[] gl_TextureEnvColor[gl_Ma"
	"xTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_TextureMatrixInvers"
	"eTranspose[gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex gl_VertexID gl_ViewportIndex",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_in[] gl_in[gl_MaxPatchVertices"
	"] gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource[gl_MaxLights] gl_ModelViewMatrix gl_ModelViewMatri"
	"xInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProject"
	"ionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl"
	"_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoo"
	"rd7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTe"
	"xtureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_out[] gl_PatchVerticesIn gl_Po"
	"int gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInvers"
	"e gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask[] gl_SampleMaskIn[] gl_Samp"
	"lePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner[2] gl_TessLevelOuter[4] gl_TexCoord[3] gl_TexCoord[4] gl_Tex"
	"Coord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextu"
	"reCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex"
	" gl_VertexID gl_ViewportIndex",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextureCoords] gl_EyePlan"
	"eR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl_FogCoord gl_FogFra"
	"gCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightM"
	"odelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_in[] gl_"
	"in[gl_MaxPatchVertices] gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource[gl_MaxLights] gl_LocalInvoca"
	"tionID gl_LocalInvocationID.x gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInv"
	"erseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewP"
	"rojectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoo"
	"rd2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix "
	"gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl_MaxTextureCoords] "
	"gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_out[] gl_PatchVerticesIn gl_Point gl_PointC"
	"oord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_Projecti"
	"onMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask[] gl_SampleMaskIn[] gl_SamplePosition gl"
	"_SecondaryColor gl_TessCoord gl_TessLevelInner[2] gl_TessLevelOuter[4] gl_TexCoord[3] gl_TexCoord[4] gl_TexCoord[] gl_Te"
	"xtureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_MaxTextureCoords] gl_"
	"TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_Vertex gl_VertexID "
	"gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize",
	"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct[gl_MaxLights] gl_BackMaterial gl_BackSecondaryColor gl_ClipDis"
	"tance[4] gl_ClipDistance[] gl_ClipPlane[gl_MaxClipPlanes] gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ[gl_MaxTextur"
	"eCoords] gl_EyePlaneR[gl_MaxTextureCoords] gl_EyePlaneS[gl_MaxTextureCoords] gl_EyePlaneT[gl_MaxTextureCoords] gl_Fog gl"
	"_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData[gl_MaxDrawBuffers] gl_FragDepth gl_FrontColor gl_FrontFa"
	"cing gl_FrontLightModelProduct gl_FrontLightProduct[gl_MaxLights] gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvoc"
	"ationID gl_in[] gl_in[gl_MaxPatchVertices] gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource[gl_MaxLig"
	"hts] gl_LocalInvocationID gl_LocalInvocationID.x gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl"
	"_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixIn"
	"verse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCo"
	"ord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Norm"
	"al gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ[gl_MaxTextureCoords] gl_ObjectPlaneR[gl"
	"_MaxTextureCoords] gl_ObjectPlaneS[gl_MaxTextureCoords] gl_ObjectPlaneT[gl_MaxTextureCoords] gl_out[] gl_PatchVerticesIn"
	" gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrix"
	"Inverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask[] gl_SampleMaskIn[] g"
	"l_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner[2] gl_TessLevelOuter[4] gl_TexCoord[3] gl_TexCoord[4] "
	"gl_TexCoord[] gl_TextureEnvColor[gl_MaxTextureUnits] gl_TextureMatrix[gl_MaxTextureCoords] gl_TextureMatrixInverse[gl_Ma"
	"xTextureCoords] gl_TextureMatrixInverseTranspose[gl_MaxTextureCoords] gl_TextureMatrixTranspose[gl_MaxTextureCoords] gl_"
	"Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize"
};

static std::string glsldictionnaryFunctions[] = 
{
	"abs acos all any asin atan ceil clamp cos cross degrees dFdx dFdy distance dot equal exp exp2 faceforward floor fract ft"
	"ransform fwidth greaterThan greaterThanEqual inversesqrt length lessThan lessThanEqual log log2 matrixCompMult max min m"
	"ix mod noise1 noise2 noise3 noise4 normalize not notEqual outerProduct pow radians reflect refract shadow1D shadow1DLod "
	"shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin smoothstep sqrt step tan texture"
	"1DLod texture1DProj texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3D"
	"ProjLod textureCube textureCubeLod transpose",
	"abs acos acosh all any asin asinh atan atanh ceil clamp cos cosh cross degrees dFdx dFdy distance dot equal exp exp2 fac"
	"eforward floor fract ftransform fwidth greaterThan greaterThanEqual inversesqrt isinf isnan length lessThan lessThanEqua"
	"l log log2 matrixCompMult max min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct pow radia"
	"ns reflect refract round roundEven shadow1D shadow1DProj shadow2D sign sin sinh smoothstep sqrt step tan tanh texelFetch"
	" texelFetchOffset texture texture1DProj texture2D texture2DProj texture3D texture3DLod texture3DProj texture3DProjLod te"
	"xtureCube textureCubeLod textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProj"
	"Grad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureSize transpose true trunc",
	"abs acos acosh all any asin asinh atan atanh ceil clamp cos cosh cross degrees dFdx dFdy distance dot equal exp exp2 fac"
	"eforward floor fract ftransform fwidth greaterThan greaterThanEqual inverse inversesqrt isinf isnan length lessThan less"
	"ThanEqual log log2 matrixCompMult max min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct p"
	"ow radians reflect refract round roundEven shadow1D shadow1DProj shadow2D sign sin sinh smoothstep sqrt step tan tanh te"
	"xelFetch texelFetchOffset texture texture1DProj texture2D texture2DProj texture3D texture3DLod texture3DProj texture3DPr"
	"ojLod textureCube textureCubeLod textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj tex"
	"tureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureSize transpose true trun"
	"c",
	"abs acos acosh all any asin asinh atan atanh ceil clamp cos cosh cross degrees determinant dFdx dFdy distance dot EmitVe"
	"rtex EndPrimitive equal exp exp2 faceforward floor fract ftransform fwidth greaterThan greaterThanEqual inverse inverses"
	"qrt isinf isnan length lessThan lessThanEqual log log2 matrixCompMult max min mix mod modf noise1 noise2 noise3 noise4 n"
	"ormalize not notEqual outerProduct pow radians reflect refract round roundEven shadow1D shadow1DProj shadow2D sign sin s"
	"inh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1DProj texture2D texture2DProj texture3D te"
	"xture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGrad textureGradOffset textureLod textureLod"
	"Offset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOf"
	"fset textureSize transpose true trunc",
	"abs acos acosh all any asin asinh atan atanh ceil clamp cos cosh cross degrees determinant dFdx dFdy distance dot EmitVe"
	"rtex EndPrimitive equal exp exp2 faceforward floatBitsToInt floatBitsToUint floor fract ftransform fwidth greaterThan gr"
	"eaterThanEqual intBitsToFloat inverse inversesqrt isinf isnan length lessThan lessThanEqual log log2 matrixCompMult max "
	"min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct pow radians reflect refract round round"
	"Even shadow1D shadow1DProj shadow2D sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture text"
	"ure1DProj texture2D texture2DProj texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textu"
	"reGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset tex"
	"tureProjLod textureProjLodOffset textureProjOffset textureSize transpose true trunc uintBitsToFloat",
	"abs acos acosh all any asin asinh atan atanh barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp "
	"cos cosh cross degrees determinant dFdx dFdy distance dot EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive eq"
	"ual exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterT"
	"han greaterThanEqual imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse i"
	"nversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max min mix mod modf noise1 noise2 no"
	"ise3 noise4 normalize not notEqual outerProduct packDouble2x32 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow precise radia"
	"ns reflect refract round roundEven sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture textu"
	"reGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffse"
	"t textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLo"
	"d textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackSnorm4x8 unpackUnorm2x16 unp"
	"ackUnorm4x8 usubBorrow",
	"abs acos acosh all any asin asinh atan atanh barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp "
	"cos cosh cross degrees determinant dFdx dFdy distance dot EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive eq"
	"ual exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterT"
	"han greaterThanEqual imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse i"
	"nversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max min mix mod modf noise1 noise2 no"
	"ise3 noise4 normalize not notEqual outerProduct packDouble2x32 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow precise radia"
	"ns reflect refract round roundEven sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture textu"
	"reGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffse"
	"t textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLo"
	"d textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackSnorm4x8 unpackUnorm2x16 unp"
	"ackUnorm4x8 usubBorrow",
	"abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCoun"
	"t bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross degrees determinant dFdx dFdy distance dot Em"
	"itStreamVertex EmitVertex EndPrimitive EndStreamPrimitive equal exp exp2 faceforward findLSB findMSB floatBitsToInt floa"
	"tBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtom"
	"icExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat i"
	"nterpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessT"
	"hanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual o"
	"uterProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow precise radians reflec"
	"t refract round roundEven sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture textureGather "
	"textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset texture"
	"Proj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod texture"
	"Size transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4"
	"x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",
	"abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ato"
	"micCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInser"
	"t bitfieldReverse ceil clamp cos cosh cross degrees determinant dFdx dFdy distance dot EmitStreamVertex EmitVertex EndPr"
	"imitive EndStreamPrimitive equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract fre"
	"xp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicExchange i"
	"mageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat int"
	"erpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessTha"
	"nEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memor"
	"yBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2"
	"x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow precise radians reflect refract round roundEven sign sin s"
	"inh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture textureGather textureGatherOffset textureGatherOff"
	"sets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGrad"
	"Offset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose tr"
	"unc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x1"
	"6 unpackUnorm4x8 usubBorrow",
	"abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ato"
	"micCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInser"
	"t bitfieldReverse ceil clamp cos cosh cross degrees determinant dFdx dFdy distance dot EmitStreamVertex EmitVertex EndPr"
	"imitive EndStreamPrimitive equal exp exp2 faceforward findLSB findMSB flat floatBitsToInt floatBitsToUint floor fma frac"
	"t frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicExcha"
	"nge imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloa"
	"t interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan le"
	"ssThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage "
	"memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 pack"
	"Half2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow precise radians reflect refract round roundEven sign "
	"sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture textureGather textureGatherOffset textureGath"
	"erOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad texturePro"
	"jGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpo"
	"se trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUno"
	"rm2x16 unpackUnorm4x8 usubBorrow"
};



} //namespace gle
